#ifndef COMMON_H
#define COMMON_H

#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x501
#endif

#include <iostream>
#include <sstream>
#include <set>
#include <map>
#include <list>
#include <vector>
#include <string>

#include <boost/algorithm/string.hpp>
#include <boost/noncopyable.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/shared_array.hpp>
#include <boost/function.hpp>
#include <boost/bind.hpp>
#include <boost/asio.hpp>
#include <boost/cstdint.hpp>
#include <boost/thread.hpp>
#include <boost/unordered_map.hpp>
#include <boost/unordered_set.hpp>
#include <boost/signal.hpp>
#include <boost/program_options.hpp>

using boost::asio::ip::tcp;

// declare
#define FX_DECLARE_CLASS(class_name)\
class class_name;\
  typedef boost::shared_ptr<class_name> class_name##Ptr;

// namespace
namespace fx {}

#endif
